package com.book.commont.response;

/**
 * @author book
 * @Date 2021-04-1.
 * @describe 预定义响应
 */
public enum ResponseEnum {
    /* 成功信息 */
    SUCCESS(10000, "处理成功"),
    /**
     * 未登录 无数据
     **/
    NO_LOGIN(10001, "未登录或会话失效，请先登录"),
    NO_DATA(10002, "暂无数据！"),
    /* 失败信息 */
    FAIL(20000, "请求失败"),
    ACCESS_DENIED(20001, "拒绝访问"),
    VALID_FAIL(20002, "参数格式不正确"),
    SYSTEM_BUSY(20003, "系统繁忙，请稍后再试"),
    ROUTER_EXISTS(20004, "路由与主表已存在，不可重复新增"),
    VALID_CODE_FAIL(20005, "验证码错误，请重新输入"),
    LOGIN_BAD_CREDENTIALS(20006, "用户名或密码错误"),
    LOGIN_ACCOUNT_STATUS(20007, "登录账户状态冻结或已过期，请联系管理员"),
    LOGIN_CREDENTIALS_NOT_FOUND(20008, "登录账户或密码不能为空"),
    LOGIN_INSUFFICIENT_AUTHENTICATION(20010, "权限不足，请联系管理员"),
    LOGIN_INSUFFICIENT_CLIENT_AUTHENTICATION(20019, "没有系统权限，请联系管理员"),
    LOGIN_NONCE_EXPIRED(20011, "会话过期，请重新登录"),
    LOGIN_PRE_AUTHENTICATED_CREDENTIALS_NOT_FOUND(20012, "登录信息不足，请联系管理员"),
    LOGIN_PROVIDER_NOT_FOUND(20013, "认证服务没有找到，请联系管理员"),
    LOGIN_REMEMBER_ME_AUTHENTICATION(20014, "记住我服务异常，请启用浏览器的cookie或联系管理员"),
    LOGIN_SESSION_AUTHENTICATION(20015, "会话服务异常，请重新登录"),
    LOGIN_USERNAME_NOT_FOUND(20016, "用户名错误"),
    FILE_EXPORT_FAIL(20017, "文件导出失败，详情："),
    PARAMS_BLANK(20018, "参数不能为空"),

    ;
    private int code;
    private String message;

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

    ResponseEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 通过消息内容获取响应码
     *
     * @param message
     * @return
     */
    public static int findCode(String message) {
        for (ResponseEnum responseEnum : ResponseEnum.values()) {
            if (responseEnum.getMessage().equals(message)) {
                return responseEnum.getCode();
            }
        }
        return FAIL.getCode();
    }
}
